//当前所在页面,String
var curPage = null;
//当前页面对象,Object
var curPageObj = 'home';
//保存全部页面缓存,Object
var mPageList = {};
//保存全部页面HTML缓存,Object
var mPageHtml = {};
//记录一些临时公共信息，避免整天var
var tempInfo = {};
//全局iScroll对象
var myScroll = null;
//接口的网址
var API_SERVER = 'http://syhx.touchmenu.cn';
//接口的具体网页地址
var API_URL = API_SERVER + '/syhx/m/api.php';
//本地存储对象
var storage = window.localStorage;
//需要动态加载的页面
var page_ids = ['home', 'search', 'unitlist', 'unitview', 'unitmap', 'nearby', 'paihang', 'phlist', 'last', 'more', 'feedback', 'aboutus', 'coupon', 'couponview', 'couponlist'];
//动态加载JS和HTML时的临时标记
var page_load_index = 0;
//下载列表的数据，供生成下载列表的时候动态使用
var selectData = {
	'nearby' : {
		'0' : '不限距离范围',
		'1000' : '附近1000米',
		'1500' : '附近1500米',
		'2000' : '附近2000米',
		'3000' : '附近3000米'
	},
	'orderby' : {
		'0' : '默认排序',
		'nearby' : '距离最近',
		'score' : '按评价由高到低',
		'moneydown' : '按人均由低到高',
		'moneyup' : '按人均由高到低'
	},
	'paihang' : {
		'score' : '综合排行',
		'TASTE' : '口味最佳',
		'SERVICE' : '服务最佳',
		'ENVIR' : '环境最佳'
	},
	'area' : {
		'0' : '全部区域'
	},
	'corderby' : {
		'0' : '默认排序',
		'1' : '热门优惠',
		'2' : '推荐优惠'
	},
	'ctype' : {
		'0' : '所有优惠类型',
		'1' : '折扣类',
		'2' : '减免类',
		'3' : '返券类',
		'4' : '超值优惠套餐'
	}
};

//根据page_ids动态加载JS和HTML资源，正式包中不会执行此函数 
function loadPages() {
	if(page_load_index < page_ids.length * 2) {
		if(page_load_index < page_ids.length) {
			var page = page_ids[page_load_index];
			page_load_index++;
			$.ajax({
				url : page + '.html',
				type : 'GET',
				cache : false,
				context : page,
				success : function(html) {
					mPageHtml[page] = html;
					loadPages();
				}
			});
		} else {
			var page = page_ids[page_load_index - page_ids.length];
			page_load_index++;
			$.getScript('js/' + page + '.js', loadPages);
		}
	} else {
		for(id in mPageList) {
			if( typeof (mPageList[id].pageinit) == 'function') {
				mPageList[id].pageinit();
			}
		}
	}
}

//切换页面函数
//id:页面ID
//para，执行的参数对象，形如{user:'admin',pwd:'password'}，供page.load函数使用
function changePage(id, para) {
	if(curPageObj != null) {
		if( typeof (curPageObj.unload) == 'function') {
			curPageObj.unload();
		}
		if( typeof (curPageObj.scroll) != 'undefined') {
			myScroll.destroy();
			myScroll = null;
		}
	}
	//alert(mPageHtml[id]);
	curPage = id;
	curPageObj = mPageList[id];
	$('#myPage').html(mPageHtml[id]);
	if( typeof (curPageObj.scroll) != 'undefined') {
		loadScroll(curPageObj.scroll);
	}
	if( typeof (curPageObj.load) == 'function') {
		curPageObj.load(para);
	}
}

//加载iScroll对象，如果page对象有scroll属性，会自动执行
function loadScroll(scrollId) {
	myScroll = new iScroll(scrollId, {
		useTransition : true,
		bounce : false,
		onInit : function() {
			if( typeof (curPageObj.scrInit) == 'function') {
				curPageObj.scrInit(this);
			}
		},
		onRefresh : function() {
			if( typeof (curPageObj.refresh) == 'function') {
				curPageObj.refresh(this);
			}
		},
		onScrollMove : function() {
			if( typeof (curPageObj.scrollMove) == 'function') {
				curPageObj.scrollMove(this);
			}
		},
		onScrollEnd : function() {
			if( typeof (curPageObj.scrollEnd) == 'function') {
				curPageObj.scrollEnd(this);
			}
		}
	});
}

//获取模拟select的HTML
function getSelectHtml(column, value) {
	var html = '';
	var text = '';
	if( typeof (value) == 'undefined' || value == null || value == '') {
		value = '0';
	}
	for(i in selectData[column]) {
		if(value == i) {
			html += '<option value="' + i + '" selected>' + selectData[column][i] + '</option>';
			text = selectData[column][i];
		} else {
			html += '<option value="' + i + '">' + selectData[column][i] + '</option>';
		}
	}
	html = '<div class="select"><b>' + text + '</b><span></span><select  onchange="changeSelect(\'' + column + '\',this)">' + html + '</select></div>';
	return html;
}

//模拟生成的select改变时执行此函数，注意应该配置多一个changeSelectXXX的函数接收回调
function changeSelect(column, e) {
	$(e).prev().prev().html($(e.options[e.selectedIndex]).text());
	eval('changeSelect' + column + '(\'' + e.value + '\');');
}

//document.addEventListener('touchmove', function(e) {
//e.preventDefault();
//}, false);

$(document).bind("mobileinit", function() {
	$.support.cors = true;
	$.mobile.allowCrossDomainPages = true;
});

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
	document.addEventListener("backbutton", onBackKeyDown, false);
}

function onBackKeyDown() {
	if(curPage == 'home') {
		navigator.notification.confirm('您确定要退出三亚海鲜网吗?', // message
		onConfirm, // callback function
		'警告', // title
		'退出,取消' // confirm 选项，用逗号隔开
		);
	} else if(curPage == 'nearby' || curPage == 'search' || curPage == 'coupon' || curPage == 'paihang' || curPage == 'last' || curPage == 'more') {
		changePage('home', {});
	} else if(curPage == 'unitlist') {
		changePage('search', {});
	} else if(curPage == 'couponlist') {
		changePage('coupon', {});
	} else if(curPage == 'phlist') {
		changePage('paihang', {});
	} else if(curPage == 'last') {
		changePage('home', {});
	} else if(curPage == 'unitview') {
		unit_back();
	} else if(curPage == 'couponview') {
		coupon_back();
	} else if(curPage == 'unitmap') {
		changePage('unitview', {
			cache : true
		});
	} else if(curPage == 'feedback') {
		changePage('more', {});
	} else if(curPage == 'aboutus') {
		changePage('more', {});
	}
}

function onConfirm(button) {
	if(button === 1) {
		navigator.app.exitApp();
	}
}

//加载首页进入图片
function showIndex() {
	var vwidth = $(document.body).width();
	var vheight = $(document.body).height();
	var p = vwidth / vheight - 720 / 1030;
	if(p > 0) {
		var new_height = vheight;
		var new_width = parseInt(vheight * (720 / 1030))
	} else {
		var new_height = parseInt(vwidth * (1030 / 720));
		var new_width = vwidth;
	}
	$("#index").width(vwidth).height(vheight).show();
	$("#index .login-logo,#index .login-logo img").width(new_width).height(new_height).css({
		left : (vwidth - new_width) / 2
	});
	$("#index .login-loading").css({
		bottom : parseInt(vheight / 4 - 25)
	});
	/*
	 * 如果是调用cache的情况下，不需要调用loadPages，在正式环境中loaded_cache = true
	 */
	if( typeof (loaded_cache) == 'undefined') {
		loadPages();
	}
}

$(showIndex); 